import { request } from "./index";
import store from "@/store";

// 配置请求拦截器
request.interceptors.request.use((config) => {

  // 获取用户临时身份信息，然后随着header的[userTempId]字段发送
  let userTempId = store.state.user.userTempId;
  config.headers.userTempId = userTempId;

  return config;
});

// 配置响应拦截器
// 参数是两个回调函数：第一个是响应状态，第二个是返还promise状态的拦截器
request.interceptors.response.use(
  (response) => {
    // 无论前台登录成功与否，响应状态status都会返还成功状态码
    // 所以我们需要根据后台返还的数据判断是否登录成功
    if (response.data.code === 200) {
      return response.data.data;
    } else {
      // 如果登录失败，把后台失败信息以对象形式返还出来
      // 因为promise返还的就是一个对象格式的数据
      return Promise.reject({ message: response.data.message });
    }
  },
  (error) => {
    // 这里才是响应失败返回的信息
    return Promise.reject(error);
  }
);
export default request;